package com.sen.paydemo.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.sen.paydemo.entity.OrderInfo;
import com.sen.paydemo.enums.OrderStatus;

import java.util.List;

/**
 * 订单信息Service
 *
 * @author 韩宗森
 * @since 2024-01-09 19:53:30
 */
public interface OrderInfoService extends IService<OrderInfo> {

    /**
     * 根据商品id生成订单
     * @return
     */
    OrderInfo createOrderByProductId(Integer productId);

    /**
     * 保存订单二维码地址
     * @param orderNo 订单编号
     * @param codeUrl 二维码地址
     */
    void saveCodeUrl(String orderNo,String codeUrl);

    /**
     * 根据订单号,更新支付状态
     * @param orderNo
     * @param orderStatus
     */
    void updateStatusByOrderNo(String orderNo, OrderStatus orderStatus);

    /**
     * 根据订单号查询订单状态
     * @param orderNo
     * @return
     */
    String getOrderStatus(String orderNo);

    /**
     * 查询超过5分钟未被支付的订单
     * @param minutes
     * @return
     */
    List<OrderInfo> getNoPayOrderByDuration(int minutes);

    /**
     * 根据订单号获取订单信息
     * @param orderNo
     * @return
     */
    OrderInfo getOrderByOrderNo(String orderNo);
}
